package com.lvwenguo.service.serviceImple;

import com.lvwenguo.dao.EchartsDateDao;
import com.lvwenguo.model.EchartsDate;
import com.lvwenguo.utils.JdbcUtil;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

/*
* echarts图表显示
* */
public class EchartsDateImple {
        private Connection connection;
        private EchartsDateDao echartsDateDao;
        private JdbcUtil jdbcUtil;
        public EchartsDateImple(){
            connection=JdbcUtil.getJdbcUtil().getConnertion();
            echartsDateDao=new EchartsDateDao(connection);
        }
    /*
    * 用于销售量和进货量的图表
    *
    *     * */
    public List<List<EchartsDate>> selectCountList(){
            List<List<EchartsDate>> list=new ArrayList<List<EchartsDate>>();
        try {
            //开启事务
            connection.setAutoCommit(false);
            //查询所有进货记录，按照时间升序排序，进货量
            String sql="select p.purchase_date,p.count from biz_purchase p ORDER BY p.purchase_date ASC";
            //查询所有销售记录，按照时间升序排序，销售量
            String sql2="select s.sale_date,s.sale_count from biz_sale s ORDER BY s.sale_date ASC";
            //执行SQL语句，查询进货量
            List<EchartsDate> echartsDateList = echartsDateDao.selectList(sql, EchartsDate.class);
            //执行SQL语句，查询销售量
            List<EchartsDate> echartsDateList1 = echartsDateDao.selectList(sql2, EchartsDate.class);
            //提交事务
            connection.commit();
            //添加到集合里
            list.add(echartsDateList);
            list.add(echartsDateList1);
            return list;
        } catch (Exception e) {
            try {
                connection.rollback();
            } catch (SQLException ex) {
                ex.printStackTrace();
            }
            e.printStackTrace();
        }


        return null;

    }
    /*
     * 前十供应商销售排名思路
     *
     * 1、根据供应商表查询出id
     * 2、根据id查询出商品条形码（有可能会有很多数据）
     * 3、根据条形码查询销售表数据（这里查询需要循环遍历查询。有一个缺点，数据量大的时候会造成时间问题）。
     * 4、根据查询出的销售数据，进行计算，就可以实现对比数据量大小，进行数据封装。
     * */
    public void selectSupplier(){
        //对应SQL语句
        String sql3="select id,supplier_name from  biz_supplier";
        String sql4="select p.bar_code from  biz_product p where p.supplier_id=? ";
        String sql5="select s.sale_count,s.product_bar_code from  biz_sale s where s.product_bar_code=?";
        //sql5查询的就是销售数量，然后进行计算。存进集合，进行排序，获取前十
    }






}
